package com.ruoyi.datastatistics.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.ruoyi.common.annotation.Excel;
import lombok.*;
import com.ruoyi.common.core.domain.BaseEntity;
import org.apache.poi.hpsf.Decimal;

/**
 * 预存缴费记录对象 t_user_pre_payment
 * 
 * @author gdqt
 * @date 2025-06-27
 */
@EqualsAndHashCode(callSuper = true)
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName("t_user_pre_payment")
public class UserPrePayment extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    @TableId(value="id", type= IdType.AUTO)
    private Long id;

    /** 用户编号 */
    @Excel(name = "用户编号")
    @TableField("user_id")
    private String userId;

    /** 票据类型 */
    @Excel(name = "票据类型")
    @TableField("ticket_type")
    private String ticketType;

    /** 当前票号 */
    @Excel(name = "当前票号")
    @TableField("ticker_no")
    private String tickerNo;

    /** 收款方式 */
    @Excel(name = "收款方式")
    @TableField("collect_way")
    private String collectWay;

    /** 上次结余 */
    @Excel(name = "上次结余")
    @TableField("last_money")
    private BigDecimal lastMoney;

    /** 预存金额 */
    @Excel(name = "预存金额")
    @TableField("pay_money")
    private BigDecimal payMoney;

    /** 本次结余 */
    @Excel(name = "本次结余")
    @TableField("current_money")
    private BigDecimal currentMoney;

    /** 核销月份 */
    @Excel(name = "核销月份")
    @TableField("check_month")
    private String checkMonth;

    /** 缴费类型 */
    @Excel(name = "缴费类型")
    @TableField("pay_type")
    private String payType;

    /** 发票领取 */
    @Excel(name = "发票领取")
    @TableField("ticket_receive_status")
    private Integer ticketReceiveStatus;

    /** 打印状态 */
    @Excel(name = "打印状态")
    @TableField("print_status")
    private Integer printStatus;

    /** 充值状态 */
    @Excel(name = "充值状态")
    @TableField("pay_status")
    private Integer payStatus;

    /** 充值说明 */
    @Excel(name = "充值说明")
    @TableField("pay_mark")
    private String payMark;

    /** 创建人 */
    @Excel(name = "创建人")
    @TableField("created_by")
    private String createdBy;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @TableField("created_time")
    private Date createdTime;
    /** 核销金额 */
    @TableField("check_money")
    private BigDecimal checkMoney;

    @TableField("usage_type")
    private Integer usageType;

    @TableField(exist = false)
    private String nickName;

    /** 找零金额 */
    @TableField("change_money")
    private BigDecimal changeMoney;
}
